Electronic still cameras typically capture, digitize, and store images on a removable memory device, such as a PCMCIA or Compact Flash card. The images are stored on the card in separate image files. Many different image file formats may be used. To increase the number of images stored per card, image compression is typically used to reduce the file size. The most popular compression standard is the JPEG (Joint Photographic Expert Group) baseline DCT (discrete cosine transform) method, which compresses the image components (for example a luminance component Y and two color difference components Cb and Cr) using 8×8 pixel blocks.
It is desirable for digital cameras to produce images that can be easily transferred into other digital devices (e.g. computers) for editing, display, transmission, archival storage, and printing. This requires a standard image data format, not just standards for the physical and electrical compatibility of the removable memory card. The format should be supported by popular application software, so that the user does not need to worry about whether the image format is compatible with the various image-capable applications on their computer.
The “FlashPix” image format (defined in FlashPix Format Specification, version 1.0, (Eastman Kodak Company, Sep. 11, 1996)) has been developed to serve as both an “interchange” format between devices (e.g. cameras) and applications (e.g. computer picture editing packages), and as a “native” format for image editing that allows the images to be easily and rapidly edited. This is accomplished using a hierarchical, tiled image representation within a “structured storage” file. A FlashPix file contains the complete image plus a hierarchy of several lower-resolution copies within the same file. Images at each resolution also are divided into rectangular tiles (e.g., squares), which enable the application to minimize the amount of image data processed to access, display or print a portion of the scene content. FlashPix allows optional “ancillary” data to be stored in the same structured storage file, along with the image data. This ancillary data can include digital audio recordings and parameters such as the time and date the photo was taken, the camera zoom position and focus distance, the scene illumination level, camera calibration data, image copyright owner, etc. For further information about the FlashPix image format see the aforementioned FlashPix Format Specification, version 1.0, (Eastman Kodak Company, Sep. 11, 1996), which is available from Eastman Kodak Co. or at the Eastman Kodak Co. Web site at www.kodak.com/go/flashpix, and is incorporated herein by reference.
Unfortunately, because FlashPix is a relatively new format, many computer applications are not yet capable of reading FlashPix image files. On the other hand, most applications are able to open images stored in “JPEG interchange format” (JIF) files defined by the Baseline DCT (JPEG) version of ISO/IEC 10918-1, which is incorporated herein by reference. This standard allows “application markers” to be included in the JIF bitstream. The data inside an application marker is ignored by applications that are not familiar with the marker. A number of image file formats have been developed which use a single application marker segment to store ancillary data and a reduced-resolution “thumbnail” image. These image formats include JFIF, defined in “JPEG File Interchange Format Version 1.02 Sep. 1, 1992 C-Cube Microsystems”, the JPEG compressed version of Exif (Exchangeable image format) described in “Digital Still Camera Image File Format Proposal (Exif) Version 1.0 Mar. 24, 1995 JEIDA/Electronic Still Camera Working Group” and SPIFF, defined in “ITU-T Rec. T.84, Annex F—Still Picture Interchange File Format, 1995”, which are each incorporated herein by reference.
For example, Exif allows some camera-related ancillary data, such as the date and time, lens f/number, etc, to be recorded using TIFF (Tag image file format) tags within an application marker 1 (APP1) segment in the JIF bitstream. (TIFF is defined in the TIFF Revision 6.0, Jun. 3, 1992, by Adobe Corp. and available on the Web at http://www.Adobe.com, and incorporated herein by reference.) Exif images can be opened by any computer application software that incorporates a JPEG reader. However, the ancillary data in the Exif file can only be accessed by applications designed specifically for Exif. When an Exif file is converted to a FlashPix file (e.g. by the Microsoft PictureIt application), the information recorded using the TIFF tags is typically ignored by the reader, since the FlashPix conversion programs are typically not familiar with the structure of the Exif application marker and therefore ignore it. Thus, the ancillary information is lost. If the FlashPix application was familiar with the Exif application marker, it would need to read each individual TIFF tag, decode the information values from each tag (for example, one specific tag encodes the camera f/number as a rational number value) and then re-encode the values using the encoding method specified by FlashPix (which encodes the camera f/number as a real number value, rather than a rational number value, for example)
Each resolution level of a FlashPix image is “tiled” into 64×64 pixel images, and stored as a group, or “stream” of these small image sections. However, the baseline DCT JPEG standard does not allow the image data to be stored in tiles. Instead, the data is stored as a single image record, by encoding all of the image blocks from left to right and top to bottom into a single data record. Therefore, to convert an Exif or other JIF compatible file format to a FlashPix image, the full resolution image is normally decompressed, tiled, and then recompressed. This process takes time, and may add compression artifacts.
What is needed is an image file format that is completely compatible with the Baseline DCT (JPEG) version of ISO/IEC 10918-1, so that it can be opened by all existing “JPEG” enabled software applications, yet can be quickly and easily converted to the FlashPix format, so that new applications can take advantage of the tiling and ancillary information capabilities offered by FlashPix.